package com.info33.platform.common.pay;

import io.swagger.annotations.ApiModelProperty;
import lombok.Data;
import lombok.extern.slf4j.Slf4j;

import java.io.Serializable;
import java.math.BigDecimal;
import java.util.Date;

/**
 * @author LF
 * @version 1.0
 */
@Data
@Slf4j
public class AlipayNotifyParam implements Serializable {

    private String appId;
    @ApiModelProperty(value = "支付宝交易凭证号")
    private String tradeNo;
    @ApiModelProperty(value = "原支付请求的商户订单号")
    private String outTradeNo;
    @ApiModelProperty(value = "商户业务ID，主要是退款通知中返回退款申请的流水号")
    private String outBizNo;
    @ApiModelProperty(value = "买家支付宝账号对应的支付宝唯一用户号。以2088开头的纯16位数字")
    private String buyerId;
    @ApiModelProperty(value = "买家支付宝账号")
    private String buyerLogonId;
    @ApiModelProperty(value = "卖家支付宝用户号")
    private String sellerId;
    @ApiModelProperty(value = "卖家支付宝账号")
    private String sellerEmail;
    @ApiModelProperty(value = "交易目前所处的状态，见交易状态说明")
    private String tradeStatus;
    @ApiModelProperty(value = "本次交易支付的订单金额")
    private BigDecimal totalAmount;
    @ApiModelProperty(value = "商家在交易中实际收到的款项")
    private BigDecimal receiptAmount;
    @ApiModelProperty(value = "用户在交易中支付的金额")
    private BigDecimal buyerPayAmount;
    @ApiModelProperty(value = "退款通知中，返回总退款金额，单位为元，支持两位小数")
    private BigDecimal refundFee;
    @ApiModelProperty(value = "商品的标题/交易标题/订单标题/订单关键字等")
    private String subject;
    @ApiModelProperty(value = "该订单的备注、描述、明细等。对应请求时的body参数，原样通知回来")
    private String body;
    @ApiModelProperty(value = "该笔交易创建的时间。格式为yyyy-MM-dd HH:mm:ss")
    private Date gmtCreate;
    @ApiModelProperty(value = "该笔交易的买家付款时间。格式为yyyy-MM-dd HH:mm:ss")
    private Date gmtPayment;
    @ApiModelProperty(value = "该笔交易的退款时间。格式为yyyy-MM-dd HH:mm:ss.S")
    private Date gmtRefund;
    @ApiModelProperty(value = "该笔交易结束时间。格式为yyyy-MM-dd HH:mm:ss")
    private Date gmtClose;
    @ApiModelProperty(value = "支付成功的各个渠道金额信息,array")
    private String fundBillList;
    @ApiModelProperty(value = "公共回传参数，如果请求时传递了该参数，则返回给商户时会在异步通知时将该参数原样返回。")
    private String passbackParams;

}
